<template>
  <div class="app-container">
    <el-button
      @click="dialogVisible = true"
      type="primary"
      size="mini"
      icon="el-icon-download"
    >
      导入Excel
    </el-button>
    <el-button
      @click="exportData"
      type="primary"
      size="mini"
      icon="el-icon-upload2"
    >
      导出Excel
    </el-button>
    <el-dialog title="数据字典导入" :visible.sync="dialogVisible" width="30%">
      <el-form>
        <el-form-item label="请选择Excel文件">
          <!--  accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" 接收xls  xlsx类型的excel文件 
          :limit="1" 只能选取一个文件
          :multiple="true" 可以同时选择多个文件
          -->
          <el-upload
            :auto-upload="true"
            :multiple="false"
            :limit="1"
            :on-exceed="fileUploadExceed"
            :on-success="fileUploadSuccess"
            :on-error="fileUploadError"
            :action="BASE_API + '/admin/core/dict/import'"
            name="file"
            accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
          >
            <el-button size="small" type="primary">点击上传</el-button>
          </el-upload>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false"> 取消 </el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import dictApi from '@/api/core/dict'

export default {
  data() {
    return {
      dialogVisible: false, //对话框是否显示
      BASE_API: process.env.VUE_APP_BASE_API,
    }
  },

  methods: {
    //通信成功：
    fileUploadSuccess(response) {
      //通信成功且业务成功
      if (response.code === 0) {
        this.$message.success('数据导入成功！')
      } else {
        //通信成功且业务失败
        this.$message.error(response.message)
      }
    },
    //通信失败：上传失败回调
    fileUploadError(error) {
      this.$message.error('数据导入失败！')
    },
    exportData() {
      window.location.href = this.BASE_API + '/admin/core/dict/export'
    },
  },
}
</script>
